Garbage Collection and Eciency in Dynamic Metacircular Runtimes
نویسندگان
چکیده
In dynamic object-oriented languages, low-level mechanisms such as just-in-time compilation, object allocation, garbage collection (GC) and method dispatch are oen handled by virtual machines (VMs). VMs are typically implemented using static languages, allowing only few changes at run time. In such systems, the VM is not part of the language and interfaces to memory management or method dispatch are xed, not allowing for arbitrary adaptation. Furthermore, the implementation can typically not be inspected or debugged with standard tools used to work on application code. is paper reports on our experience building Bee, a dynamic Smalltalk runtime, wrien in Smalltalk. Bee is a Dynamic Metacircular Runtime (DMR) and seamlessly integrates the VM into the application and thereby overcomes many restrictions of classic VMs, for instance by allowing arbitrary code modications of the VM at run time. Furthermore, the approach enables developers to use their standard tools for application code also for the VM, allowing them to inspect, debug, understand, and modify a DMR seamlessly. We detail our experience of implementing GC, compilation, and optimizations in a DMR. We discuss examples where we found that DMRs can improve understanding of the system, provide tighter control of the soware stack, and facilitate research. We also show that in high-level benchmarks the Bee DMR performance is close to that of a widely used Smalltalk VM. CCSConcepts •So ware and its engineering→Object oriented languages; Runtime environments; Garbage collection; Dynamic compilers; DLS’17, Vancouver, Canada © 2017 Copyright held by the owner/author(s). Publication rights licensed to ACM. is is the author’s version of the work. It is posted here for your personal use. Not for redistribution. e denitive Version of Record was published in Proceedings of 13th ACM SIGPLAN International Symposium on Dynamic Languages, October 25–27, 2017 , hp://dx.doi.org/10.1145/3133841. 3133845.
منابع مشابه
4.2 Improvement of Eciency 5 Problems and Its Solution 5.1 Specifying Groups 5.2 Unpredictable Cycles
Reference counting schemes are suitable for garbage collection on distributed systems because they do not require global information to nd garbage. However, reference counting schemes have a serious drawback: they cannot reclaim garbage which form cyclic structures. In this paper, we propose an extension of the traditional reference counting scheme, group reference counting, which alleviates th...
متن کاملApplication-assisted physical memory management for general-purpose operating systems
Many software applications can, in principle, trade main memory consumption for other resources. For instance, garbage collected language runtimes can trade collection overhead for heap size, and many programs can improve their performance by caching data that was precomputed, read from disk or received from the network. Unfortunately, OSs provide little useful information about physical memory...
متن کاملLocality-Aware GC Optimisations for Big Data Workloads
Many Big Data analytics and IoT scenarios rely on fast and non-relational storage (NoSQL) to help processing massive amounts of data. In addition, managed runtimes (e.g. JVM) are now widely used to support the execution of these NoSQL storage solutions, particularly when dealing with Big Data key-value store-driven applications. The benefits of such runtimes can however be limited by automatic ...
متن کاملThe Measured Cost of Conservative Garbage Collection
Because dynamic memory management is an important part of a large class of computer programs, high-performance algorithms for dynamic memory management have been, and will continue to be, of considerable interest. Experience indicates that for many programs, dynamic storage allocation is so important that programmers feel compelled to write and use their own domainspecific allocators to avoid t...
متن کاملCellCilk: Extending Cilk for Heterogeneous Multicore Platforms
The potential of heterogeneous multicores, like the Cell BE, can only be exploited if the host and the accelerator cores are used in parallel and if the specific features of the cores are considered. Parallel programming, especially when applied to irregular task-parallel problems, is challenging itself. However, heterogeneous multicores add to that complexity due to their memory hierarchy and ...
متن کامل